package com.ewing.common.constants;

import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;

public enum AjaxRespCode {
  /**
   * 成功
   */
  CODE_SUC(2000000, "成功"),


  /************************ 开头是5 开始都要是系统内部错误， 开头不是5的是业务系统异常 ******************/
  /**
   * 错误
   */
  CODE_ERROR(5000000, "出错"),

  /**
   * 未知错误
   */
  CODE_UNKNOW(5000001, "未知"),

  /**
   * 客户未登陆
   */
  CUSTOMER_NOLOGIN(6000001, "客户未登陆"),

  /**
   * 客户登陆成功
   */
  CUSTOMER_LOGIN_SUC(6000002, "客户登陆成功"),
  /**
   * 客户登陆失败
   */
  CUSTOMER_LOGIN_FAIL(6000003, "客户登陆失败"),


  /******************************** order **********************/
  ORDER_UN_EXISTS_ADDRESS(6100001, "没有设置地址"),
  ORDER_UN_NEED_PAY(610002, "订单不需要支付"),
  ORDER_INVALID_STATE(610003, "订单状态异常"),



  /******************************** sms ************************/
  SMS_VALID_AUTH_CODE(6200001, "验证码仍生效"),
  SMS_WITHOUT_LOGIN_MSG(6200002, "验证码仍生效");


  public Integer code;
  public String message;

  AjaxRespCode(Integer code, String message) {
    this.code = code;
    this.message = message;
  }

  public static AjaxRespCode parse(Integer code) {
    if (null == code) {
      return null;
    }
    for (AjaxRespCode type : AjaxRespCode.values()) {
      if (ObjectUtils.equals(type.code, code)) {
        return type;
      }
    }
    return null;
  }

  public static String getCn(Integer value) {
    if (null == value) {
      return StringUtils.EMPTY;
    }
    for (AjaxRespCode type : AjaxRespCode.values()) {
      if (type.code == value.intValue()) {
        return type.message;
      }
    }
    return StringUtils.EMPTY;
  }

}
